import { createRouter, createWebHistory } from 'vue-router'
import { useUserStore } from '@/stores/modules/user'
import routes from './routes'


// 1、创建路由实例
// 之前vue2: 通过new Router 创建路由实例
// 现在vue3： 通过createRouter 创建路由实例
const router = createRouter({
  // vue2:通过mode 'history' | 'hash' 指定路由模式
  // vue3： 通过history： createWebHistory | createWebHashHistory 函数指定路由模式
  /**
     * import.meta.env.BASE_URL:  路由的基准地址 默认是‘/’
     * 说明：项目部署=》项目开发完了，打包=》dist目录
     * 1. 把dist代码放到服务器根目录（root）=> import.meta.env.BASE_URL 不需要设置
     * 2. 没有把dist代码放到服务器根目录（root）=》例如：放到root/consult-h5 => vite.config.ts  添加配置=>base: /consult-h5/
     */
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: routes
})

// 页面访问拦截：前置路由守卫
/**
 * vue2: to去哪 from 从哪来 next:function 放行
 * 说明： vue2 需要next 函数放行
 * vue3：to 去哪 from 从哪来 
 */
router.beforeEach((to) => {
  /**
   * 页面访问拦截
   * 根据是否有token 决定用户是否可以访问to页面
   * 1、有token同时排除 登录 注册 
   * 2、没有token 跳回登录页 return path地址
   */
  document.title = `在线问诊-${to.meta.title}`
  const store = useUserStore()
  if (!store.user.token && !['/login'].includes(to.path)) return '/login'
})


export default router
